package com.zx.JDK特性.jdk1_8;

/**
 * 流是数据渠道，用于操作数据源（集合、数组等）所生成的元素序列。
 * ①Stream自己不会存储元素。
 * ②Stream不会改变源对象。相反，会返回持有新结果的新Stream。
 * ③Stream操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。
 */
public class Stream3_排序 {
/*
	https://www.cnblogs.com/kuanglongblogs/p/11230250.html
	
	List<类> list; 代表某集合
	 
	//返回 对象集合以类属性一升序排序
	list.stream().sorted(Comparator.comparing(类::属性一));
	 
	//返回 对象集合以类属性一降序排序 注意两种写法
	list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
	list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序
	 
	//返回 对象集合以类属性一升序 属性二升序
	list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
	 
	//返回 对象集合以类属性一降序 属性二升序 注意两种写法
	list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
	list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序
	 
	//返回 对象集合以类属性一降序 属性二降序 注意两种写法
	list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
	list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序
	 
	//返回 对象集合以类属性一升序 属性二降序 注意两种写法
	list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
	list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序<br><br><br>	
*/
}
